package com.FundamentalDemos.Loop;

public class 循环结构 {
    public static void main(String[] args) {

        /*
         * for(初始化语句;循环条件;迭代语句){
         *     循环体语句(重复执行的代码);
         * }
         * */

        for (int i = 0; i < 5; i++) {
            System.out.println("第" + (i + 1) + "次helloworld~");
        }

        System.out.println("--------------");

        for (int i = 0; i < 10; i += 2) {
            System.out.println("i=" + i);
        }

        System.out.println("--------------");

        int sum = 0, i = 1;
        int destination = 101;
        for (; i <= destination / 2; i++) {
            System.out.println("i=" + i);
            sum += destination + 1;
        }
        if (destination % 2 == 1) {
            sum += i;
        }
        System.out.println("sum=" + sum);
        //奇 1 2 ... 50 51 52 ... 100 101
        //偶  1 2 ... 50 51 ... 99 100

//        System.out.println((1 + destination) * destination / 2);//高斯求和 (首项+尾项)*项数/2
        //(1+3)*3<-必定为偶   /2
        //(1+4)*4<-必定为偶   /2

        System.out.println("--------------");

        i = 0;
        while (i++ < 5) {
            System.out.println(i);
        }

        System.out.println("--------------");

        double 珠穆朗玛峰 = 8848860;//毫米
        double 纸的厚度 = 0.1;//毫米
        int count = 0;
        while (纸的厚度 < 珠穆朗玛峰) {
            纸的厚度 *= 2;
            count++;
        }
        System.out.println("震惊:这张纸折叠了" + count + "次竟然达到了" + 纸的厚度 + "mm,超过了珠穆朗玛峰的" + 珠穆朗玛峰 + "mm!");

        System.out.println("--------------");

        i = 0;
        do {
            System.out.println("do-while");
        } while (++i < 3);
        //至少执行一次

        System.out.println("--------------");

//        死循环写法
//
//        for(;;){
//
//        }
//
//        推荐用while
//        while(true){
//
//        }
//
//        do {
//
//        }while(true);

        //打印矩形
        /*
         *    * * * * *
         *     * * * *
         *    * * * * *
         *     * * * *
         *    * * * * *
         *
         * */

        System.out.println("打印矩形:");
        for (i = 1; i <= 5; ++i) {
            if (i % 2 == 1) {
                for (int j = 1; j <= 9; j++) {
                    if (j % 2 == 1) {
                        System.out.print("*");
                    } else {
                        System.out.print(" ");
                    }
                }
            } else {
                for (int j = 1; j <= 9; j++) {
                    if (j % 2 == 1) {
                        System.out.print(" ");
                    } else {
                        System.out.print("*");
                    }
                }
            }
            System.out.println();
        }

        System.out.println("--------------");


        //break: 1.结束循环 2.结束switch
        //continue: 结束本轮循环,后面的代码都不再执行了


        //用于数组的,增强的for循环
        i = 0;
        int[] arr = new int[]{1, 2, 3, 4, 5};
        for (int value : arr) {
            System.out.println("arr[" + i++ + "] = " + value);
        }


        System.out.println("--------------");
        //用标记+break,一次跳出多重循环
        wtp:
        while (true) {
            while (true) {
                System.out.println("只执行一次");
                break wtp;
            }
        }


    }
}
